/**
 * @projectName 高校就业网
 * @package com.kzj.CollegeEmploymentNetwork.model
 * @className com.kzj.CollegeEmploymentNetwork.model.Company
 * @copyright Copyright 2025 Thunisoft, Inc. All rights reserved.
 */
package com.kzj.CollegeEmploymentNetwork.model;

import javax.persistence.Column;
import javax.persistence.Table;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
import lombok.experimental.SuperBuilder;
import com.kzj.CollegeEmploymentNetwork.common.BaseEntity;
import javax.validation.constraints.Size;
import com.kzj.CollegeEmploymentNetwork.validate.Validate;
import com.thunisoft.artery.data.annotation.CodeType;


/**
 * Company
 *
 * @description 公司表实体
 * @author kzj
 * @date 2025年01月20日 23:11:54
 * @version 1.0.0
 **/
@ApiModel("公司表")
@Table(name="db_recruit.t_company")    
@Getter
@Setter
@ToString
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
public class Company extends BaseEntity{
    
    /**
     * serialVersionUID
     */
    private static final long serialVersionUID = 1L;
    
    /**
     * 公司名称简称
     */
    @ApiModelProperty("公司名称简称")
    @Column(name = "c_name_for_sort", columnDefinition = "varchar(300)")
    @Size(max = 300, groups = {Validate.class}, message = "公司名称简称的最大长度为300")
    private String nameForSort;

    /**
     * 公司名称
     */
    @ApiModelProperty("公司名称")
    @Column(name = "c_name", columnDefinition = "varchar(300)")
    @Size(max = 300, groups = {Validate.class}, message = "公司名称的最大长度为300")
    private String name;

    /**
     * 公司ICO图标
     */
    @ApiModelProperty("公司ICO图标")
    @Column(name = "c_ico", columnDefinition = "varchar(600)")
    @Size(max = 600, groups = {Validate.class}, message = "公司ICO图标的最大长度为600")
    private String ico;

    /**
     * 行业
     */
    @ApiModelProperty("行业")
    @Column(name = "n_industy")
    @CodeType("cy_016")
    private Integer industy;

    /**
     * 企业性质（国企，私企）
     */
    @ApiModelProperty("企业性质（国企，私企）")
    @Column(name = "n_type")
    @CodeType("cy_001")
    private Integer type;

    /**
     * 公司规模（1-99,100-499...）
     */
    @ApiModelProperty("公司规模（1-99,100-499...）")
    @Column(name = "n_size")
    @CodeType("cy_002")
    private Integer size;

    /**
     * 公司位置
     */
    @ApiModelProperty("公司位置")
    @Column(name = "c_postion", columnDefinition = "varchar(300)")
    @Size(max = 300, groups = {Validate.class}, message = "公司位置的最大长度为300")
    private String postion;

    /**
     * 公司简介
     */
    @ApiModelProperty("公司简介")
    @Column(name = "lc_intro", columnDefinition = "text")
    private String intro;

    /**
     * 统一社会信息代码
     */
    @ApiModelProperty("统一社会信息代码")
    @Column(name = "c_unified_social_credit_identifier", columnDefinition = "varchar(32)")
    @Size(max = 32, groups = {Validate.class}, message = "统一社会信息代码的最大长度为32")
    private String unifiedSocialCreditIdentifier;

    /**
     * 法人姓名
     */
    @ApiModelProperty("法人姓名")
    @Column(name = "c_legal_person_name", columnDefinition = "varchar(32)")
    @Size(max = 32, groups = {Validate.class}, message = "法人姓名的最大长度为32")
    private String legalPersonName;

    /**
     * 法人身份证号
     */
    @ApiModelProperty("法人身份证号")
    @Column(name = "c_legal_person_id_card", columnDefinition = "varchar(32)")
    @Size(max = 32, groups = {Validate.class}, message = "法人身份证号的最大长度为32")
    private String legalPersonIdCard;

    /**
     * 营业执照url
     */
    @ApiModelProperty("营业执照url")
    @Column(name = "c_business_license_url", columnDefinition = "varchar(300)")
    @Size(max = 300, groups = {Validate.class}, message = "营业执照url的最大长度为300")
    private String businessLicenseUrl;

    /**
     * 公司状态（审核中，审核通过）
     */
    @ApiModelProperty("公司状态（审核中，审核通过）")
    @Column(name = "n_status")
    @CodeType("cy_0010")
    private Integer status;

    /**
     * 排序编号
     */
    @ApiModelProperty("排序编号")
    @Column(name = "n_sort_no")
    private Integer sortNo;

}